package com.atguigu.gmall.publisher.controller;

import com.atguigu.gmall.publisher.service.TradeStatsService;
import com.atguigu.gmall.publisher.utils.DateFormatUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;

/**
 * @author Felix
 * @date 2023/1/11
 * 交易域统计Controller
 * @Controller 将对象的创建交给spring的容器管理，如果类中的方法返回的是String，会进行页面跳转，如果不想跳转，可以在方法上加 @ResponseBody
 * @RestController 将对象的创建交给spring的容器管理，如果类中的方法返回的是String，不会进行页面跳转，直接将字符串返回
 * @RestController = @Controller + @ResponseBody
 * @RequestMapping("/gmv") 拦截/gmv请求，将请求交给标注的方法进行处理
 * @RequestParam 接收请求中携带的参数，如果没有指定参数，可以指定默认值
 * @Autowired 将容器中指定类型的对象，赋值给当前属性---注入
 */
@RestController
public class TradeStatsController {

    @Autowired
    private TradeStatsService tradeStatsService;

    @RequestMapping("/gmv")
    public String getGMV(@RequestParam(value = "date", defaultValue = "0") Integer date) {
        if (date == 0) {
            //如果客户端请求的时候，没有传递日期参数，那么将当天日期作为默认值
            date = DateFormatUtil.now();
        }
        //调用service中的方法，获取总交易额
        BigDecimal gmv = tradeStatsService.getGMV(date);
        String json = "{\"status\": 0,\"data\": " + gmv + "}";
        return json;
    }

}
